package com.budwk.app.enterprise.models;
import com.budwk.starter.common.openapi.annotation.ApiModel;
import com.budwk.starter.common.openapi.annotation.ApiModelProperty;
import com.budwk.starter.database.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.io.Serializable;
import java.math.BigDecimal;


/**
 * @desc: 方法描述
 * @Author: laochiangx
 * @Date: 2024/3/7 15:08
 * @info:
 */


@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Table("dfxy_enterprise.wx_business_information")
@Comment("企业信息")
@ApiModel(description = "企业信息实体")
public class BusinessInformation extends BaseModel implements Serializable {
    private static final long serialVersionUID = 1L;

    @Column
    @Name
    @Comment("ID")
    @ApiModelProperty(description = "ID")
    @ColDefine(type = ColType.VARCHAR, width = 32)
    @PrevInsert(els = {@EL("snowflake()")}, nullEffective = true)
    private String id;

    // 公司名称
    @Column("company_name")
    @Comment("企业名称")
    @ApiModelProperty(description = "企业名称")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String companyName;

    // 曾用名
    @Column("previous_name")
    @Comment("曾用名")
    @ApiModelProperty(description = "曾用名")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String previousName;

    // 法定代表人
    @Column("legal_representative")
    @Comment("法定代表人")
    @ApiModelProperty(description = "法定代表人")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String legalRepresentative;

    // 经营状态
    @Column("business_status")
    @Comment("经营状态")
    @ApiModelProperty(description = "经营状态")
    @ColDefine(type = ColType.VARCHAR, width = 100)
    private String businessStatus;

    // 成立日期
    @Column("date_of_establishment")
    @Comment("成立日期")
    @ApiModelProperty(description = "成立日期")
    private Date dateOfEstablishment;

    // 注册资本
    @Column("registered_capital")
    @Comment("注册资本")
    @ApiModelProperty(description = "注册资本")
    private BigDecimal registeredCapital;

    // 实缴资本
    @Column("paid_in_capital")
    @Comment("实缴资本")
    @ApiModelProperty(description = "实缴资本")
    private BigDecimal paidInCapital;

    // 纳税人识别号
    @Column("taxpayer_identification_number")
    @Comment("纳税人识别号")
    @ApiModelProperty(description = "纳税人识别号")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String taxpayerIdentificationNumber;

    // 组织机构代码
    @Column("organization_code")
    @Comment("组织机构代码")
    @ApiModelProperty(description = "组织机构代码")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String organizationCode;

    // 纳税人资质
    @Column("taxpayer_qualification")
    @Comment("纳税人资质")
    @ApiModelProperty(description = "纳税人资质")
    @ColDefine(type = ColType.VARCHAR, width = 100)
    private String taxpayerQualification;

    // 核准日期
    @Column("date_of_approval")
    @Comment("核准日期")
    @ApiModelProperty(description = "核准日期")
    private Date dateOfApproval;

    // 行业
    @Column("industry")
    @Comment("行业")
    @ApiModelProperty(description = "行业")
    @ColDefine(type = ColType.VARCHAR, width = 100)
    private String industry;

    // 国标行业
    @Column("national_standard_industry")
    @Comment("国标行业")
    @ApiModelProperty(description = "国标行业")
    @ColDefine(type = ColType.VARCHAR, width = 100)
    private String nationalStandardIndustry;

    // 人员规模
    @Column("scale_of_personnel")
    @Comment("人员规模")
    @ApiModelProperty(description = "人员规模")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String scaleOfPersonnel;

    // 英文名称
    @Column("english_name")
    @Comment("英文名称")
    @ApiModelProperty(description = "英文名称")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String englishName;

    // 注册地址
    @Column("registered_address")
    @Comment("注册地址")
    @ApiModelProperty(description = "注册地址")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String registeredAddress;

    // 统一社会信用代码
    @Column("social_credit_code")
    @Comment("统一社会信用代码")
    @ApiModelProperty(description = "统一社会信用代码")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String socialCreditCode;

    // 工商注册号
    @Column("business_registration_number")
    @Comment("工商注册号")
    @ApiModelProperty(description = "工商注册号")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String businessRegistrationNumber;

    // 营业期限
    @Column("business_period")
    @Comment("营业期限")
    @ApiModelProperty(description = "营业期限")
    @ColDefine(type = ColType.VARCHAR, width = 100)
    private String businessPeriod;

    // 企业类型
    @Column("type_of_enterprise")
    @Comment("企业类型")
    @ApiModelProperty(description = "企业类型")
    @ColDefine(type = ColType.VARCHAR, width = 100)
    private String typeOfEnterprise;

    // 参保人数
    @Column("number_insured_persons")
    @Comment("参保人数")
    @ApiModelProperty(description = "参保人数")
    private Integer numberInsuredPersons;

    // 分支机构参保人数
    @Column("number_insured_branches")
    @Comment("分支机构参保人数")
    @ApiModelProperty(description = "分支机构参保人数")
    private Integer numberInsuredBranches;

    // 登记机关
    @Column("registration_authority")
    @Comment("登记机关")
    @ApiModelProperty(description = "登记机关")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String registrationAuthority;

    // 经营范围
    @Column("scope_of_business")
    @Comment("经营范围")
    @ApiModelProperty(description = "经营范围")
    private String scopeOfBusiness; // 对于TEXT类型，MyBatis-Plus默认支持，无需额外宽度注解

    // 电话
    @Column("telephone")
    @Comment("电话")
    @ApiModelProperty(description = "电话")
    @ColDefine(type = ColType.VARCHAR, width = 20)
    private String telephone;

    // 邮箱
    @Column("letter_box")
    @Comment("邮箱")
    @ApiModelProperty(description = "邮箱")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String letterBox;

    // 官网
    @Column("official_website")
    @Comment("官网")
    @ApiModelProperty(description = "官网")
    @ColDefine(type = ColType.VARCHAR, width = 255)
    private String officialWebsite;

    @Column("bonded_business_type")
    @Comment("综保区业务类型")
    @ApiModelProperty(description = "综保区业务类型")
    @ColDefine(type = ColType.VARCHAR, width = 50)
    private String bondedBusinessType;

    @Column("tax_rating")
    @Comment("税务评级")
    @ApiModelProperty(description = "税务评级")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String taxRating;

    @Column("unit_scale")
    @Comment("单位规模")
    @ApiModelProperty(description = "单位规模")
    @ColDefine(type = ColType.VARCHAR, width = 100)
    private String unitScale;

    @Column("main_business")
    @Comment("主营业务")
    @ApiModelProperty(description = "主营业务")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String mainBusiness;

    @Column("enterprise_situation")
    @Comment("企业集团情况")
    @ApiModelProperty(description = "企业集团情况")
    @ColDefine(type = ColType.VARCHAR, width = 500)
    private String enterpriseSituation;

    @Column("is_last_legal")
    @Comment("是否有上一级法人：如有，法人单位统一社会信用代码及详细名称")
    @ApiModelProperty(description = "是否有上一级法人")
    @ColDefine(type = ColType.BOOLEAN, width = 2)
    private Boolean isLastLegal;

    @Column("last_superior_detail")
    @Comment("上一级法人单位统一社会信用代码及详细名称")
    @ApiModelProperty(description = "上一级法人单位统一社会信用代码及详细名称")
    @ColDefine(type = ColType.VARCHAR, width = 500)
    private String lastSuperiorDetail;

    @Column("subordinate_unit")
    @Comment("是否有下属产业活动单位：分支机构、派出机构、分公司、分部、分厂、分店等")
    @ApiModelProperty(description = "是否有下属产业活动单位")
    @ColDefine(type = ColType.VARCHAR, width = 200)
    private String subordinateUnit;
}
